/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package control.filtros;

/**
 *
 * @author tuareg
 */
public abstract class Filtro<T> implements Filtrar<T> {

	private String nombre;

	public abstract String filtrar(T objeto);

	public Filtro(String nombre, String nombreAtributo) {
		this(nombre);
		this.nombreAtributo=nombreAtributo;
	}

	public Filtro(String nombre) {
		this.nombre = nombre;
		this.nombreAtributo =  normalizar(nombre).replaceAll("\\s+", "");
	}

	private String normalizar(String cadena) {
		String retorno="", anadir="";
		for (char a : cadena.toCharArray()) {
			anadir = String.valueOf(a);
			if (a == 'á') {
				anadir = "a";
			}
			if (a == 'é') {
				anadir = "e";
			}

			if (a == 'í') {
				anadir = "i";
			}

			if (a == 'ó') {
				anadir = "o";
			}

			if (a == 'ú') {
				anadir = "u";
			}

			if (a == 'ñ') {
				anadir = "n";
			}
			retorno += anadir;

		}
		return retorno;
	}

	@Override
	public String toString() {
		return nombre;
	}

	public String getNombreAtributo() {
		return nombreAtributo;
	}
	private String nombreAtributo;
}
